package com.ddpt.platform.common.export.vo.merchant.account;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.BooleanEnum;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
import com.ddpt.platform.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author fml
 * @date 2023-08-09
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ExcelIgnoreUnannotated
@ColumnWidth(18)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
public class MerchantAccountUserRecordExportVo extends BaseEntity {
    private static final long serialVersionUID = -8913230897408572333L;

    @ExcelProperty(value = "订单号")
    private String orderNo;

    @ExcelProperty(value = "客户ID")
    private Long userId;

    @ExcelProperty(value = "金额")
    private BigDecimal amount;

    // 1消费,2退款
    @ExcelProperty(value = "交易类型")
    private String type;

    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "下单时间")
    private Date orderTime;

    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "订单完成时间")
    private Date finishTime;

    // "0","1","2","3","4","5","6","7","8","9","10","11"
    // "待支付","待选规格","待领取","待发货","待收货","已完成","已关闭","领取失败","充值中","待发货","待发货","待审核"
    @ExcelProperty(value = "订单状态")
    private String status;

    // "recharge","systemCoupon","externalCoupon","cardPassword","real","currency","pack"
    // "充值卡","内部优惠券","外部卡券","卡密类","实物","代币类","礼品包"
    @ExcelProperty(value = "商品类型")
    private String goodsType;

    @ColumnWidth(25)
    @ContentStyle(wrapped = BooleanEnum.TRUE)
    @ExcelProperty("规格名称")
    private String productName;

    @ColumnWidth(25)
    @ContentStyle(wrapped = BooleanEnum.TRUE)
    @ExcelProperty("商品名称")
    private String goodsName;

    @ExcelProperty("来源")
    private String businessName;

}
